package cn.qiyu5522.controller;


import cn.qiyu5522.domain.DTO.TagAddDTO;
import cn.qiyu5522.domain.DTO.TagPageQueryDTO;
import cn.qiyu5522.domain.DTO.TagUpdateDTO;
import cn.qiyu5522.domain.entity.ResponseResult;
import cn.qiyu5522.service.TagService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * <p>
 * 标签 前端控制器
 * </p>
 *
 * @author Tonkey
 * @since 2024-04-16
 */
@RestController
@RequestMapping("/content/tag")
public class TagController {


    @Resource
    private TagService tagService;

    @GetMapping("/listAllTag")
    public ResponseResult listAllTag(){
        return tagService.listAllTag();
    }

    @GetMapping("/list")
    public ResponseResult list(@RequestParam Integer pageNum,
                               @RequestParam Integer pageSize,
                               @RequestParam( required = false) String name,
                               // 未来可能加入的查询条件
                               @RequestParam( required = false) String remark){
        TagPageQueryDTO tagPageQueryDTO = new TagPageQueryDTO(pageNum, pageSize, name, remark);
        return  tagService.getListByCondition(tagPageQueryDTO);
    }

   @PostMapping()
    public ResponseResult addTag(@RequestBody TagAddDTO tagAddDTO){
        return tagService.addTag(tagAddDTO);
   }

   @DeleteMapping("/{id}")
    public ResponseResult deleteTag(@PathVariable Long id){
        return tagService.deleteTag(id);
   }


   @GetMapping("/{id}")
    public ResponseResult getTag(@PathVariable Long id){
        return tagService.getTag(id);
   }

   @PutMapping()
    public ResponseResult updateTag(@RequestBody TagUpdateDTO tagUpdateDTO){
        return tagService.updateTag(tagUpdateDTO);
   }
}
